package Demo02;

/**
 * @ClassName CodeBlock
 * @Description 代码块
 * @Author 李明忠
 * @Date 2025/5/28 14:54
 * @Version 1.0
 */
public class CodeBlock {
    public int num1 = 10;
    public int num2 = 20;

    public static int loop = 10;
    public CodeBlock() {
    }

    public CodeBlock(int num1, int num2) {
        this.num2 = num2;
    }

    //普通代码块：写在方法中
    public void fun() {
        int a;
        {
            a = 10;//a的生命周期在本代码块中
        }
    }
    //示例代码块(写在类中):用于对实例变量的初始化或者是用于对入职的记录
    /*
    * 1.示例代码块：执行时机在new之后，构造函数之前
    * 2.实例代码块，可以初始化静态变量(但是一般不会这么使用)
    * 3.每new一次就调用一次示例代码块
    * */
    public static int age;//实例代码块可以初始化静态变量


    {
        age = 10;
        this.num1 = 20;
        this.num2 = 30;
    }

    //静态代码块
    /*
    * 静态代码块执行时机是在类加载时机
    * */
    static {
        loop = 20;
    }
}
